<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>



 /* var obj = {
      name:"damu",
      marry:function () {
          console.log("冬雨 ❥(^_-)" + this.name)
      }
  }
  //this 隐式丢失
  //bind 硬绑定函数; 解决隐式丢失问题
  setTimeout(obj.marry.bind(obj),1000)*/

 var obj = {
     name:"damu",
     marry:()=> {
         setTimeout(()=>{
             console.log("冬雨 ❥(^_-)" + this.name)
         },1000)
     }
 }
 obj.marry()
    
  /* this
        es5(this指向于谁;得看函数调用位置的调用形式)
            調用的基本规范
                普通调用 (fn())
                    this指向window 严格模式下指向undefined
                隐式调用 (obj.fn())
                    this指向obj
                显式调用 (fn.call() fn.apply())
                    this指向call apply的第一个参数
                构造调用 (new fn())
                    this指向构造出来的实例对象
             回调函数中this指向于谁 得阅读api
             隐式丢失
             解决隐式丢失;通过bind来解决
        es6(箭头函数)
            箭头函数this指向于谁 得看其上一层作用域this的执行

   */
</script>
</html>